export interface ApiResponse<T = any> {
    code: number
    data: T
    message: string
    success: boolean
}

export interface PageResult<T = any> {
    list: T[]
    total: number
    current: number
    pageSize: number
}

export interface RouteMenu {
    id: number
    name: string
    path: string
    component?: string
    icon?: string
    parentId?: number
    sort: number
    children?: RouteMenu[]
}

export interface TableColumn {
    key: string
    title: string
    dataIndex: string
    width?: number
    align?: 'left' | 'center' | 'right'
    sorter?: boolean
    filters?: { text: string; value: string }[]
}

export interface ModalConfig {
    title: string
    width?: number
    destroyOnClose?: boolean
    maskClosable?: boolean
}

export interface StarRatingProps {
    value?: number
    max?: number
    allowHalf?: boolean
    disabled?: boolean
    size?: 'small' | 'default' | 'large'
} 